main(List<String> args) {
  test((int num1, int num2) {
    return num1 + num2;
  });

  var demo1 = demo();

  print(demo1(20, 30));
}

// void test(Function foo) {
//   foo("lyc");
// }

// void test(int foo(int num1, int num2)) {
//   foo(20, 30);
// }

typedef Calculate = int Function(int num1, int num2);

void test(Calculate calc) {
  print(calc(20, 30));
}

Calculate demo() {
  return (int num1, int num2) {
    return num1 * num2;
  };
}
